package com.iflytek.jcy.supervise.clue.component.httpinterface;

import com.dtflys.forest.annotation.Get;
import com.dtflys.forest.annotation.GetRequest;
import com.dtflys.forest.annotation.Retry;
import com.dtflys.forest.annotation.Var;
import com.iflytek.jcy.supervise.clue.component.httpinterface.modelResponse.ModelInfo;
import com.iflytek.jcy.supervise.clue.component.httpinterface.result.*;

import java.util.List;

/**
 * 
 * <br>
 * 标题:模型管理接口 <br>
 * 描述: <br>
 * 公司: www.iflytek.com<br>
 * @autho dgyu
 * @time 2022年10月24日 下午4:32:53
 */
// 整个接口下的所有方法请求都默认绑定该根地址
// @Address(source = HttpAddressSource.class) // 动态根地址
//@BaseRequest(interceptor = { SimpleInterceptor.class })
public interface ModelHttpInterface {

	/** 获取所有已启用模型
	 * 
	 * @return */
	@GetRequest("#{model.url}#{model.getModels}")
	@Retry(maxRetryCount = "3", maxRetryInterval = "100")
	OutModelResponse<List<Model>> getModels();

	/** 根据模型id获取模型详情 */
	@Get("#{model.url}#{model.getModelFull}{id}")
	@Retry(maxRetryCount = "5", maxRetryInterval = "100")
	OutModelResponse<Object> getModelFull(@Var("id") Integer id);
	
	/** 根据模型id获取模型详情 */
	@Get("#{model.url}#{model.getModelFull}{id}")
	@Retry(maxRetryCount = "5", maxRetryInterval = "100")
	OutModelResponse<ModelInfo> getModelInfoFull(@Var("id") Integer id);

}
